#pragma once
#include <utility>

namespace icesp
{
    namespace units
    {
        #define UNIT(NAME, VALUE_TYPE) \
            struct NAME \
            { \
                template <class T> \
                NAME(T&& value) : value{std::forward<T>(value)} {} \
                VALUE_TYPE value; \
            }
            // FIXME const VALUE_TYPE value;

        UNIT(thread_count, int);
        UNIT(relax_count_per_iter, int);
        UNIT(graph_source_point, int);
        UNIT(graph_target_point, int);
        UNIT(run_times, int);
        #undef UNIT
    }
}

